home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8381 / 8381.xpi / chrome / content / webclipper / win / webclipperOverlay.xul
Extensible Markup Language  |  2010-02-02  |  7KB  |  209 lines

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
  3. <?xml-stylesheet href="chrome://webclipper3/skin/webclipperOverlay.css" type="text/css"?>
  4.  
  5. <overlay id="webclipper3Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  6.  
  7.   <!-- common function to put the button in the toolbar the first go-round -->
  8.   <script type="application/x-javascript" src="chrome://webclipper3-common/content/toolbar-button-init.js"/>
  9.  
  10. <script type="application/x-javascript">
  11. <![CDATA[
  12. var window_clipped_to_en;
  13. ]]>
  14. </script>
  15. <script type="application/x-javascript" src="http://www.evernote.com/public/bookmarkClipper.js"/>
  16. <script type="application/x-javascript">
  17. <![CDATA[
  18. function evernote_addSelectionToEn3(popupSrc) {
  19.     var br = document.getElementById("content");
  20.     var wnd = null;
  21.     if (br == null || !br.selectedTab || popupSrc)
  22.         wnd = document.commandDispatcher.focusedWindow;
  23.     else
  24.         wnd = br.getBrowserForTab(br.selectedTab).docShell
  25.                            .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
  26.                            .getInterface(Components.interfaces.nsIDOMWindow);
  27.     try {
  28.         var clazz = Components.classes["@Evernote/WebClipper3;1"];
  29.         var iface = Components.interfaces.IWebClipper3;
  30.         var inst = clazz.createInstance(iface);
  31.  
  32.         inst.AddToEN(wnd, popupSrc);
  33.         return true; // handled
  34.     } catch(e) {
  35.     }
  36.     window_clipped_to_en = wnd;
  37.     EN_CLIP_HOST='http://www.evernote.com';
  38.     EN_clip(EN_CLIP_HOST);
  39.     return true; // handled
  40. }
  41.  
  42. function evernote_addSelectedMessagesToEn3() {
  43.     try {
  44.         var clazz = Components.classes["@Evernote/WebClipper3;1"];
  45.         var iface = Components.interfaces.IWebClipper3;
  46.         var inst = clazz.createInstance(iface);
  47.         
  48.         //use globally defined function
  49.         var dbView = GetDBView();
  50.         if (dbView) {
  51.             var messageArray = {}; 
  52.             var length = {};
  53.             dbView.getURIsForSelection(messageArray, length);
  54.             inst.AddTbUrisToEN(messageArray.value, length.value);
  55.         }
  56.     } catch(e) {
  57.         alert("exception:" + e);
  58.     }
  59.     return true; // handled
  60. }
  61.  
  62. function evernote_addToEn3(popupSrc) {
  63.     // see also WhichPaneHasFocus() globally defined function
  64.  
  65.     //use globally defined functions
  66.     try {
  67.         var threadTree = GetThreadTree();
  68.     } catch(e) {
  69.         // GetThreadTree not exists in 'message opened' window
  70.         return evernote_addSelectionToEn3(null);
  71.     }
  72.     if (top.document.commandDispatcher.focusedWindow == GetMessagePaneFrame())
  73.         return evernote_addSelectionToEn3(popupSrc);
  74.  
  75.     var messagePane = GetMessagePane();
  76.     var currentNode = top.document.commandDispatcher.focusedElement;    
  77.     while (currentNode) {
  78.         if (currentNode === messagePane)
  79.             return evernote_addSelectionToEn3(popupSrc);
  80.         else if (currentNode === threadTree)
  81.             return evernote_addSelectedMessagesToEn3();
  82.         currentNode = currentNode.parentNode;
  83.     }
  84.     return evernote_addSelectionToEn3(null); //???
  85. }
  86.  
  87. // uninit under FF/TB 1.5
  88. // FIXME:geech:2009-03-11 let's get some comments in here folks
  89.  
  90. var evernote_uninstallObserver3 = {
  91.     bUninstall:false,
  92.     observe:function(subject, topic, data) {
  93.         if (topic == "em-action-requested") {
  94.             var item = subject.QueryInterface(Components.interfaces.nsIUpdateItem);
  95.             // id from install.rdf <em:id>
  96.             if(item.id == "{E0B8C461-F8FB-49b4-8373-FE32E9252800}") {
  97.                 if (data == "item-uninstalled"){
  98.                     this.bUninstall = true;
  99.                 } else if (data == "item-cancel-action") {
  100.                     this.bUninstall = false;
  101.                 }
  102.             }
  103.         } else if (topic == "quit-application-granted") {
  104.             if (this.bUninstall) {
  105.                 var prefs = Components.classes["@mozilla.org/preferences;1"].getService(Components.interfaces.nsIPrefService);
  106.                 var db = prefs.getBranch(null);
  107.                 db.clearUserPref(evernote_preference3);
  108.             }
  109.             this.unregister();
  110.         }
  111.     },
  112.     register:function() {
  113.         var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
  114.         observerService.addObserver(this, "em-action-requested", false);
  115.         observerService.addObserver(this, "quit-application-granted", false);
  116.     },
  117.     unregister:function() {
  118.         var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
  119.         observerService.removeObserver(this,"em-action-requested");
  120.         observerService.removeObserver(this,"quit-application-granted");
  121.     }
  122. }
  123.  
  124. function evernote_setObserver3() {
  125.     evernote_uninstallObserver3.register();
  126. }
  127. window.addEventListener("load", evernote_setObserver3, false);
  128.  
  129. ]]>
  130. </script>
  131.  
  132.  
  133. <!-- This is for the right click menu -->
  134.  
  135. <!-- in Firefox -->
  136.  
  137. <popup id="contentAreaContextMenu">
  138.     <menuseparator id="webclipper-menu-sep" />
  139.     <menuitem id="webclipper3-menu"
  140.     label="Add to Evernote" 
  141.     oncommand="return evernote_addSelectionToEn3(document.popupNode);" />
  142. </popup>
  143.  
  144. <!-- in Thunderbird -->
  145.  
  146. <popup id="messagePaneContext">
  147.     <menuitem id="webclipper3-menu"
  148.     label="Add to Evernote" 
  149.     oncommand="return evernote_addSelectionToEn3(document.popupNode);" />
  150. </popup>
  151.  
  152. <popup id="threadPaneContext">
  153.     <menuitem id="webclipper3-menu"
  154.     label="Add to Evernote" 
  155.     oncommand="return evernote_addSelectedMessagesToEn3();" />
  156. </popup>
  157.  
  158. <!-- This is for the Tools menu -->
  159.  
  160. <!-- in Firefox -->
  161.  
  162. <menupopup id="menu_ToolsPopup">
  163.     <menuseparator id="webclipper-menu-sep" />
  164.     <menuitem id="webclipper3-menu"
  165.     label="Add to Evernote" 
  166.     oncommand="return evernote_addSelectionToEn3(null);" />    
  167. </menupopup>
  168.  
  169. <!-- in Thunderbird -->
  170.  
  171. <menupopup id="taskPopup">
  172.     <menuseparator id="webclipper-menu-sep" />
  173.     <menuitem id="webclipper3-menu"
  174.     label="Add to Evernote" 
  175.     oncommand="return evernote_addToEn3(null);" />    
  176. </menupopup>
  177.  
  178.  
  179. <!-- This is for the toolbar -->
  180.  
  181. <!-- in Firefox -->
  182.  
  183. <toolbarpalette id="BrowserToolbarPalette">
  184.     <toolbarbutton id="webclipper3-button" label="Add to Evernote"
  185.     class="toolbarbutton-1 chromeclass-toolbar-additional"
  186.     tooltiptext="Add selected text or entire page to Evernote as new note"
  187.     oncommand="return evernote_addSelectionToEn3(null);" />
  188. </toolbarpalette>
  189.  
  190. <!-- in Thunderbird -->
  191.  
  192. <toolbarpalette id="MailToolbarPalette">
  193.     <toolbarbutton id="webclipper3-button" label="Add to Evernote"
  194.     class="toolbarbutton-1"
  195.     tooltiptext="Add selected text or entire page to Evernote as new note"
  196.     oncommand="return evernote_addToEn3(null);" />
  197. </toolbarpalette>
  198.  
  199. <toolbarpalette id="MsgComposeToolbarPalette">
  200.     <toolbarbutton id="webclipper3-button" label="Add to Evernote"
  201.     class="toolbarbutton-1"
  202.     tooltiptext="Add selected text or entire page to Evernote as new note"
  203.     oncommand="return evernote_addSelectionToEn3(null);" />
  204. </toolbarpalette>
  205.  
  206.  
  207. </overlay>
  208.  
  209.